package com.rybbaby.tss.tasks.core.task.entity;

import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.io.Serializable;

/**
 * @description 会员考勤记录表
 * 
 * @author 雷春琼
 * 
 * @createDate 2017-08-10 上午10:33:46
 */
@Entity
@Table(name = "tss_member_check_attendance")
@DynamicUpdate(true)
@DynamicInsert(true)
public class TssMemberCheckAttendance implements Serializable {
	
	private static final long serialVersionUID = 91780591594115L;
	
	/** 主键 **/
	private String id;
	/** 会员Id **/
	private String  memberId;
	/** 班级Id **/
	private String  classId;
	/** 考勤类型 **/
	private Integer type;
	/** 状态 **/
	private Integer attendenceStatus;
	/** 备注 **/
	private String remark;
	/** 当前操作者Id **/
	private String adminUserId;
	/** 创建时间 **/
	private java.sql.Timestamp createTime;
	/** 版本 **/
	private Integer version;
/*	*//**
	 * 教室
	 *//*
	private TssClasses tssClasses;

	*//**
	 * 会员
	 *//*
	private TssStudent tssStudent;

	*//**
	 * 用户
	 *//*
	private SysEmployee sysEmployee;*/
	
	/**
	 * 方法: 取得主键
	 *
	 * @return java.lang.Integer 主键
	 */
	@Id
	@GeneratedValue(generator = "tss_member_check_attendanceIDGenerator" , strategy = GenerationType.AUTO)
	@GenericGenerator(name = "tss_member_check_attendanceIDGenerator" , strategy = "uuid")
	@Column(name = "id", nullable= false, length = 11)
	public String getId() {
		return this.id;
	}
	
	/**
	 * 方法: 设置主键
	 *
	 * @param id 主键
	 */
	public void setId(String id) {
		this.id = id;
	}
	
	/**
	 * 方法: 取得会员Id
	 *
	 * @return java.lang.Integer 会员Id
	 */
	@Column(name = "memberId", nullable= true, length = 11)
	public String getMemberId() {
		return this.memberId;
	}
	
	/**
	 * 方法: 设置会员Id
	 *
	 * @param memberId 会员Id
	 */
	public void setMemberId(String memberId) {
		this.memberId = memberId;
	}
	
	/**
	 * 方法: 取得班级Id
	 *
	 * @return java.lang.Integer 班级Id
	 */
	@Column(name = "classId", nullable= true, length = 32)
	public String getClassId() {
		return this.classId;
	}
	
	/**
	 * 方法: 设置班级Id
	 *
	 * @param classId 班级Id
	 */
	public void setClassId(String classId) {
		this.classId = classId;
	}
	

	/**
	 * 方法: 取得考勤类型
	 *
	 * @return java.lang.Integer 考勤类型
	 */
	@Column(name = "type", nullable= true, length = 11)
	public Integer getType() {
		return this.type;
	}
	
	/**
	 * 方法: 设置考勤类型
	 *
	 * @param type 考勤类型
	 */
	public void setType(Integer type) {
		this.type = type;
	}
	
	/**
	 * 方法: 取得状态
	 *
	 * @return java.lang.Integer 状态
	 */
	@Column(name = "attendenceStatus", nullable= true, length = 11)
	public Integer getAttendenceStatus() {
		return this.attendenceStatus;
	}
	
	/**
	 * 方法: 设置状态
	 *
	 * @param attendenceStatus 状态
	 */
	public void setAttendenceStatus(Integer attendenceStatus) {
		this.attendenceStatus = attendenceStatus;
	}
	
	/**
	 * 方法: 取得备注
	 *
	 * @return java.lang.String 备注
	 */
	@Column(name = "remark", nullable= true, length = 11)
	public String getRemark() {
		return this.remark;
	}
	
	/**
	 * 方法: 设置备注
	 *
	 * @param remark 备注
	 */
	public void setRemark(String remark) {
		this.remark = remark;
	}
	
	/**
	 * 方法: 取得当前操作者Id
	 *
	 * @return java.lang.Integer 当前操作者Id
	 */
	@Column(name = "adminUserId", nullable= true, length = 11)
	public String getAdminUserId() {
		return this.adminUserId;
	}
	
	/**
	 * 方法: 设置当前操作者Id
	 *
	 * @param adminUserId 当前操作者Id
	 */
	public void setAdminUserId(String adminUserId) {
		this.adminUserId = adminUserId;
	}
	
	/**
	 * 方法: 取得创建时间
	 *
	 * @return java.sql.Timestamp 创建时间
	 */
	@Column(name = "createTime", nullable= true, length = 19)
	public java.sql.Timestamp getCreateTime() {
		return this.createTime;
	}
	
	/**
	 * 方法: 设置创建时间
	 *
	 * @param createTime 创建时间
	 */
	public void setCreateTime(java.sql.Timestamp createTime) {
		this.createTime = createTime;
	}
	
	/**
	 * 方法: 取得版本
	 *
	 * @return java.lang.Integer 版本
	 */
    @Version
	@Column(name = "version", nullable= true, length = 11)
	public Integer getVersion() {
		return this.version;
	}
	
	/**
	 * 方法: 设置版本
	 *
	 * @param version 版本
	 */
	public void setVersion(Integer version) {
		this.version = version;
	}

	/*@JoinColumn(name = "classId" , insertable = false , updatable = false)
	@ManyToOne(fetch = FetchType.LAZY , targetEntity = TssClasses.class)
	public TssClasses getTssClasses() {
		return tssClasses;
	}

	public void setTssClasses(TssClasses tssClasses) {
		this.tssClasses = tssClasses;
	}

	@JoinColumn(name = "adminUserId" , insertable = false , updatable = false)
	@ManyToOne(fetch = FetchType.LAZY , targetEntity = SysEmployee.class)
	public SysEmployee getSysEmployee() {
		return sysEmployee;
	}

	public void setSysEmployee(SysEmployee sysEmployee) {
		this.sysEmployee = sysEmployee;
	}

	@JoinColumn(name = "memberId" , insertable = false , updatable = false)
	@ManyToOne(fetch = FetchType.LAZY , targetEntity = TssStudent.class)
	public TssStudent getTssStudent() {
		return tssStudent;
	}

	public void setTssStudent(TssStudent tssStudent) {
		this.tssStudent = tssStudent;
	}*/
}